Skip to content

특장사 주문 거부(사유 필수) · 관리자 주문 치우기(계정별 권한) - #306

Merged
Jay722J merged 1 commit into
mainfrom
feat/order-reject-and-remove
Aug 26, 2026
Merged

특장사 주문 거부(사유 필수) · 관리자 주문 치우기(계정별 권한)#306
Jay722J merged 1 commit into
mainfrom
feat/order-reject-and-remove

Conversation

@Jay722J

@Jay722J Jay722J commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

Closes #305

① 거부 — 특장사가 「못 받겠다」고 알리는 문

수락밖에 없어서, 못 받는 주문을 붙들고 있거나 전화로 알리고 관리자가 손으로 되돌려야 했다. 그 사이 그 주문은 배정된 것처럼 보인다.

사유 필수 — 없으면 버튼이 눌리지 않는다
조건 배정 상태에서만(수락 후에는 거부가 아니다) · 자기 조직 것만
결과 배정이 풀리고 견적은 계약완료로 — 계약이 깨진 게 아니라 만들 곳을 다시 찾는 것

실제로 눌러 본 결과:

[취소] [거부] [수락]
  → 거부 클릭 → 사유칸 생김 · 수락 버튼 사라짐
  → 사유 비었을 때: 「거부하기」 잠김 ✓
  → 사유 입력 후: 열림 ✓ → "reject:요청 납기 내 제작이 어렵습니다" 전달 ✓

② 치우기 — 관리자가 잘못 만든 주문을 목록에서 뺀다

⚠️ 「삭제」를 상태로 구현했다

CLAUDE.md 의 「행을 지우지 않는다 — 상태로 관리한다」 를 지켰다. 견적 삭제가 서명된 계약까지 연쇄로 지운 사고에서 나온 규칙이다.

쓰는 사람에게는 삭제와 같다 — 목록에서 빠진다. 다만 누가 언제 왜 치웠는지가 남는다.

범위 수락 대기·진행중까지 — 인도가 끝난 건은 이미 일어난 거래다
사유 필수
권한 새 기능모듈 order.remove · 계정별로 켠다 · 기본은 아무도 없음
자리 보드 카드가 아니라 주문을 열어 본 화면 — 되돌리기 어려운 조작은 한 건을 들여다보는 자리에

migration

열 여섯 개와 기능모듈 한 줄을 더하기만 한다. 테스트가 모든 구문이 ADD COLUMN IF NOT EXISTS 또는 INSERT INTO feature_module 로 시작하는지 확인한다. 권한 기본값(access_control)은 만들지 않는다.

db:drift 일치 — 테이블 33 · 컬럼 250.

회귀 가드

17개. 넷을 되살려 실제로 깨지는 것까지 확인했다:

되살린 버그 잡히는가
진짜 order.delete 로 바꾸기 ✅ 2개 실패
거부 사유 필수 제거
목록에서 치운 주문을 안 거르기
권한을 order.control 로 낮추기

첫 줄이 핵심이다 — 누가 「그냥 지우면 되지」로 바꾸는 순간 걸린다.

남겨 둔 것

파일 보관함(file-index)은 치운 주문도 계속 보여 준다. 그건 일감 목록이 아니라 기록이고, 치운 주문에 딸린 파일도 증거다.

기존 실패 9건은 이 브랜치와 무관.

**① 거부 — 특장사가 「못 받겠다」고 알리는 문**

수락밖에 없어서, 못 받는 주문을 붙들고 있거나 전화로 알리고 관리자가 손으로 되돌려야
했다. 그 사이 그 주문은 **배정된 것처럼 보인다.**

거부하면 배정이 풀려 다른 특장사에 다시 맡길 수 있다. 견적은 계약완료로 돌아간다 —
계약이 깨진 것이 아니라 만들 곳을 다시 찾는 것이다.

**사유가 필수다.** 「왜 안 받았는지」가 없으면 다시 배정할 수도, 고칠 수도 없다
(납기가 안 되는 것인지 사양을 못 만드는 것인지에 따라 다음 수가 다르다).

**② 치우기 — 관리자가 잘못 만든 주문을 목록에서 뺀다**

⚠️ **행을 지우지 않는다.** 「삭제」로 요청받았지만 상태로 남긴다 —
   누가 언제 왜 치웠는지가 사라지면 나중에 아무도 설명하지 못한다.
   (견적 삭제가 서명된 계약까지 연쇄로 지운 사고 이후의 규칙 — CLAUDE.md)
   목록에서는 빠지므로 쓰는 사람에게는 삭제와 같다.

수락 대기·진행중까지만 치운다. 인도가 끝난 건은 이미 일어난 거래다.

권한은 새 기능모듈 `order.remove` 로 **계정별로** 켠다 — 관리자라고 다 되면 안 된다.
기본은 아무도 없다.

migration 은 열 여섯 개와 기능모듈 한 줄을 **더하기만** 한다.

Closes #305
@Jay722J
Jay722J merged commit cf9146a into main Aug 26, 2026
@Jay722J
Jay722J deleted the feat/order-reject-and-remove branch August 26, 2026 04:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

특장사 주문 거부 기능 · 관리자 주문 치우기(계정별 권한)

1 participant